Instrucciones: En el GES se encuentra el data set de partidos políticos en Guatemala, con dicha información, ud debe realizar/responder las siguientes preguntas. Puede utilizar cualquier libreria para generar las graficas.
Alumno: Dennis Xiloj Carnet 22006829
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.express as px
import plotly
from datetime import datetime
from sklearn.linear_model import LinearRegression
plotly.offline.init_notebook_mode()
# leer archvio resultados-electorales-de-los-partidos-politicos-en-guatemala-de-1985-a-2012.xlsx
partidos = pd.read_excel('resultados-electorales-de-los-partidos-politicos-en-guatemala-de-1985-a-2012.xlsx', sheet_name='Fichero')
partidos
| sigla | nombrep | nparticip | e85 | e90 | e95 | e99 | e03 | e07 | e11 | ... | p07_v | b07_v | n07_v | d07_v | m07_v | p11_v | b11_v | n11_v | d11_v | m11_v | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | AD | Alianza Democrática | 1.0 | NaN | NaN | NaN | 1.0 | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 1 | ADN | Acción de Desarrollo Nacional | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | 1.0 | ... | NaN | NaN | NaN | NaN | NaN | 19038.0 | NaN | 47822.0 | 44170.0 | 26138.0 |
| 2 | ANN | Alternativa Nueva Nación | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | 1.0 | ... | NaN | NaN | NaN | NaN | NaN | 0.0 | NaN | 0.0 | 0.0 | 5203.0 |
| 3 | ANN | Alianza Nueva Nación | 2.0 | NaN | NaN | NaN | NaN | 2.0 | 1.0 | NaN | ... | 19643.0 | NaN | 42843.0 | 46359.0 | 27798.0 | NaN | NaN | NaN | NaN | NaN |
| 4 | ANP | Alianza Nacional Progresista | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90 | PUA-MEC-FUN | NaN | 1.0 | 3.0 | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 91 | UD-LV | NaN | 1.0 | NaN | NaN | NaN | 3.0 | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 92 | UNE-GANA | NaN | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | 3.0 | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 920843.0 | 846050.0 | 797254.0 |
| 93 | URNG-DÍA | Alianza Nueva Nación | 1.0 | NaN | NaN | NaN | 3.0 | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| 94 | VIVA-EG | NaN | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | 3.0 | ... | NaN | NaN | NaN | NaN | NaN | 275475.0 | NaN | 336623.0 | 240551.0 | 121387.0 |
95 rows × 96 columns
# Agregar columnas de fundacion, cancelacion y vigencia (sirven a lo largo del laboratorio)
# algunos partidos registran su fundacion como 99 y cancelacion como 99, asumimos que su rango entonces es 1999-1999
partidos[partidos['fund'] == '99'] = '1999-1999'
# obtener rangos de años de fundacion y cancelacion
partidos['fundacion'] = partidos['fund'].str.rsplit('-', expand=True)[0]
partidos['fundacion'] = pd.to_numeric(partidos['fundacion'], errors='coerce')
# la cancelacion tambien esta marcada como 99 cuando deberia ser 1999
partidos[partidos['cancel'] == '99'] = '1999'
# marcar los vigentes
partidos['vigente'] = partidos['cancel'] == 'Vigente'
# obtener cancelacion
partidos['cancelacion'] = pd.to_numeric(partidos['cancel'], errors='coerce')
# prevenir errores por fragmentacion:
partidos = partidos.copy(deep=True)
partidos
| sigla | nombrep | nparticip | e85 | e90 | e95 | e99 | e03 | e07 | e11 | ... | d07_v | m07_v | p11_v | b11_v | n11_v | d11_v | m11_v | fundacion | vigente | cancelacion | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | AD | Alianza Democrática | 1.0 | NaN | NaN | NaN | 1.0 | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 1997.0 | False | 2000.0 |
| 1 | ADN | Acción de Desarrollo Nacional | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | 1.0 | ... | NaN | NaN | 19038.0 | NaN | 47822.0 | 44170.0 | 26138.0 | 2009.0 | False | 2012.0 |
| 2 | ANN | Alternativa Nueva Nación | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | 1.0 | ... | NaN | NaN | 0.0 | NaN | 0.0 | 0.0 | 5203.0 | 2009.0 | True | NaN |
| 3 | ANN | Alianza Nueva Nación | 2.0 | NaN | NaN | NaN | NaN | 2.0 | 1.0 | NaN | ... | 46359.0 | 27798.0 | NaN | NaN | NaN | NaN | NaN | 1997.0 | False | 2008.0 |
| 4 | ANP | Alianza Nacional Progresista | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False | 99.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90 | PUA-MEC-FUN | NaN | 1.0 | 3.0 | NaN | NaN | NaN | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False | NaN |
| 91 | UD-LV | NaN | 1.0 | NaN | NaN | NaN | 3.0 | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False | NaN |
| 92 | UNE-GANA | NaN | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | 3.0 | ... | NaN | NaN | NaN | NaN | 920843.0 | 846050.0 | 797254.0 | NaN | False | NaN |
| 93 | URNG-DÍA | Alianza Nueva Nación | 1.0 | NaN | NaN | NaN | 3.0 | NaN | NaN | NaN | ... | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | False | NaN |
| 94 | VIVA-EG | NaN | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | 3.0 | ... | NaN | NaN | 275475.0 | NaN | 336623.0 | 240551.0 | 121387.0 | NaN | False | NaN |
95 rows × 99 columns
def grafica_votos_por_partido(partido):
"""Funcion para graficar los votos por cada año del partido, acepta la sigla del partido como parametro"""
# años electorales
años = [1985, 1990, 1995, 1999, 2003, 2007, 2011]
# crear el dataframe
partidos_i = partidos.set_index('sigla') # referenciamos cada fila por su sigla
data = {
'tipo': ['Presidente', 'Balotaje', 'Diputados lista nacional', 'Diputados distritales', 'Alcalde'],
}
# usar solo los años mayores al año de fundacion
fundacion = partidos_i.loc[partido, 'fundacion']
for año in [a for a in años if a >= fundacion]:
# por cada año se obtienen los votos de cada tipo
data[año] = [
partidos_i.loc[partido, 'p' + str(año)[-2:] + '_v'],
partidos_i.loc[partido, 'b' + str(año)[-2:] + '_v'],
partidos_i.loc[partido, 'n' + str(año)[-2:] + '_v'],
partidos_i.loc[partido, 'd' + str(año)[-2:] + '_v'],
partidos_i.loc[partido, 'm' + str(año)[-2:] + '_v']
]
# compilar todo en un dataframe
votos_partido = pd.DataFrame(data)
# graficar
fig = px.line(
votos_partido.set_index('tipo').T, title=f'Historico del votos del partido {partido}',
labels={'value': 'Votos', 'index': 'Año', 'tipo': 'Tipo de voto'}
)
fig.show()
# probar la funcion
grafica_votos_por_partido('PAN')
grafica_votos_por_partido('FRG')
grafica_votos_por_partido('GANA')
Según se ve en la data, no todos los partidos llegan a inscribirse formalmente, pero todos tienen un rango de años en el que fueron fundados, asumimos que en ese rango el año incial es el año de formación y que el partido dura hasta que se tiene registro de su cancelación.
# obtener la cantidad de partidos politicos por cada año desde 1985 hasta 2011 a partir de su año de fundacion y cancelacion
años = range(1985, 2012)
# sumar los totales activos por cada año
total = []
for año in años:
total.append((
(partidos['fundacion'] <= año) &
(partidos['vigente'] | (año <= partidos['cancelacion']))
).sum().sum())
# crear el dataset
partidos_por_año = pd.DataFrame({'Año': años, 'Total': total})
display(partidos_por_año.head())
px.line(partidos_por_año, x='Año', y='Total', title='Cantidad de partidos politicos en Guatemala entre 1985-2011').show()
| Año | Total | |
|---|---|---|
| 0 | 1985 | 6 |
| 1 | 1986 | 33 |
| 2 | 1987 | 33 |
| 3 | 1988 | 33 |
| 4 | 1989 | 33 |
No tenemos un dato exacto del total de votantes sino solo los votos obtenidos por cada partido.
Aproximaremos el dato asumiendo que no hay votos nulos para el cargo de presidente en cada elección.
# obtener los votos por año para presidente
votos = partidos[['p85_v', 'p90_v', 'p95_v', 'p99_v', 'p03_v', 'p07_v', 'p11_v']]\
.rename(columns={'p85_v': '1985', 'p90_v': '1990', 'p95_v': '1995', 'p99_v': '1999', 'p03_v': '2003', 'p07_v': '2007', 'p11_v': '2011'})
votos = votos.sum()
# graficar
fig = px.line(votos, title='Total de votos no-nulos para presidente por año electoral en Guatemala', labels={'value': 'Votos', 'index': 'Año'})
fig.update_layout(showlegend=False)
fig.show()
partido = 'UNE'
# escaños nacionales
escaños_nac = partidos[partidos['sigla'] == partido][['n85_e', 'n90_e', 'n95_e', 'n99_e', 'n03_e', 'n07_e', 'n11_e']]\
.rename(columns={'n85_e': 1985, 'n90_e': 1990, 'n95_e': 1995, 'n99_e': 1999, 'n03_e': 2003, 'n07_e': 2007, 'n11_e': 2011})
escaños_nac = escaños_nac.T.rename(columns=lambda x: 'nacionales')
# escaños distritales
escaños_dist = partidos[partidos['sigla'] == partido][['d85_e', 'd90_e', 'd95_e', 'd99_e', 'd03_e', 'd07_e', 'd11_e']]\
.rename(columns={'d85_e': 1985, 'd90_e': 1990, 'd95_e': 1995, 'd99_e': 1999, 'd03_e': 2003, 'd07_e': 2007, 'd11_e': 2011})
escaños_dist = escaños_dist.T.rename(columns=lambda x: 'distritales')
# unir ambos dataframes
escaños = escaños_dist.join(escaños_nac)
escaños.fillna(0, inplace=True)
# filtrar solo por los años despues de la fundacion
escaños = escaños.loc[escaños.index >= partidos.set_index('sigla').loc[partido, 'fundacion']]
# graficar
px.bar(
escaños,
x=escaños.index,
y=['nacionales', 'distritales'],
title='Total de escaños legislativos por año electoral en Guatemala para el partido ' + partido,
labels={'variable': 'Escaños', 'value': 'cantidad', 'index': 'Año'},
)
def graficar_escaños(partido):
# escaños nacionales
escaños_nac = partidos[partidos['sigla'] == partido][['n85_e', 'n90_e', 'n95_e', 'n99_e', 'n03_e', 'n07_e', 'n11_e']]\
.rename(columns={'n85_e': 1985, 'n90_e': 1990, 'n95_e': 1995, 'n99_e': 1999, 'n03_e': 2003, 'n07_e': 2007, 'n11_e': 2011})
escaños_nac = escaños_nac.T.rename(columns=lambda x: 'nacionales')
# escaños distritales
escaños_dist = partidos[partidos['sigla'] == partido][['d85_e', 'd90_e', 'd95_e', 'd99_e', 'd03_e', 'd07_e', 'd11_e']]\
.rename(columns={'d85_e': 1985, 'd90_e': 1990, 'd95_e': 1995, 'd99_e': 1999, 'd03_e': 2003, 'd07_e': 2007, 'd11_e': 2011})
escaños_dist = escaños_dist.T.rename(columns=lambda x: 'distritales')
# unir ambos dataframes
escaños = escaños_dist.join(escaños_nac)
escaños.fillna(0, inplace=True)
# filtrar solo por los años despues de la fundacion
escaños = escaños.loc[escaños.index >= partidos.set_index('sigla').loc[partido, 'fundacion']]
# graficar
px.bar(
escaños,
x=escaños.index,
y=['nacionales', 'distritales'],
title='Total de escaños legislativos por año electoral en Guatemala para el partido ' + partido,
labels={'variable': 'Escaños', 'value': 'cantidad', 'index': 'Año'},
).show()
graficar_escaños('PAN')
graficar_escaños('FRG')
# partidos ganadores en cada año (https://es.wikipedia.org/wiki/Anexo:Presidentes_de_Guatemala)
ganadores = {
'DCG': 1985,
'MAS': 1990,
'PAN': 1995,
'FRG': 1999,
'GANA': 2003,
'UNE': 2007,
'PP': 2011,
}
partidos_ganadores = partidos[partidos['sigla'].isin(ganadores.keys())]\
[['sigla', 'e85', 'e90', 'e95', 'e99', 'e03', 'e07', 'e11', 'p85_v', 'p90_v', 'p95_v', 'p99_v', 'p03_v', 'p07_v', 'p11_v']]
# eliminar el partido duplicado en la fila 57 ya que no es ganador
partidos_ganadores = partidos_ganadores.drop(57)
# agregar la columna del año ganador
partidos_ganadores.set_index('sigla', inplace=True)
partidos_ganadores['año_gana'] = pd.Series(ganadores)
partidos_ganadores.reset_index(inplace=True)
partidos_ganadores
| sigla | e85 | e90 | e95 | e99 | e03 | e07 | e11 | p85_v | p90_v | p95_v | p99_v | p03_v | p07_v | p11_v | año_gana | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | DCG | 1.0 | 1.0 | 1.0 | 2.0 | 1.0 | 1.0 | NaN | 648793.0 | 271287.0 | 0.0 | NaN | 43105.0 | 16470.0 | NaN | 1985 |
| 1 | FRG | NaN | 2.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | NaN | NaN | 341364.0 | 1044720.0 | 535136.0 | 239174.0 | NaN | 1999 |
| 2 | GANA | NaN | NaN | NaN | NaN | NaN | 1.0 | 2.0 | NaN | NaN | NaN | NaN | NaN | 565017.0 | NaN | 2003 |
| 3 | MAS | NaN | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | 375117.0 | NaN | NaN | NaN | NaN | NaN | 1990 |
| 4 | PAN | NaN | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | NaN | 268766.0 | 565393.0 | 663366.0 | 225703.0 | 83169.0 | 123648.0 | 1995 |
| 5 | PP | NaN | NaN | NaN | NaN | 1.0 | 1.0 | 1.0 | NaN | NaN | NaN | NaN | 0.0 | 771811.0 | 1611493.0 | 2011 |
| 6 | UNE | NaN | NaN | NaN | NaN | 1.0 | 1.0 | 2.0 | NaN | NaN | NaN | NaN | 707635.0 | 926236.0 | NaN | 2007 |
def calc_participaciones(x):
"""Funcion para calcular las participaciones previas de cada partido antes de ganar"""
gano_en = ganadores[x['sigla']]
count = 0
for año in ganadores.values():
if x['e' + str(año)[-2:]] == 1:
count += 1
if año >= gano_en:
break
return count
partidos_ganadores['part_prev'] = partidos_ganadores.apply(calc_participaciones, axis=1)
partidos_ganadores
| sigla | e85 | e90 | e95 | e99 | e03 | e07 | e11 | p85_v | p90_v | p95_v | p99_v | p03_v | p07_v | p11_v | año_gana | part_prev | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | DCG | 1.0 | 1.0 | 1.0 | 2.0 | 1.0 | 1.0 | NaN | 648793.0 | 271287.0 | 0.0 | NaN | 43105.0 | 16470.0 | NaN | 1985 | 1 |
| 1 | FRG | NaN | 2.0 | 1.0 | 1.0 | 1.0 | 1.0 | 2.0 | NaN | NaN | 341364.0 | 1044720.0 | 535136.0 | 239174.0 | NaN | 1999 | 2 |
| 2 | GANA | NaN | NaN | NaN | NaN | NaN | 1.0 | 2.0 | NaN | NaN | NaN | NaN | NaN | 565017.0 | NaN | 2003 | 0 |
| 3 | MAS | NaN | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | 375117.0 | NaN | NaN | NaN | NaN | NaN | 1990 | 1 |
| 4 | PAN | NaN | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | NaN | 268766.0 | 565393.0 | 663366.0 | 225703.0 | 83169.0 | 123648.0 | 1995 | 2 |
| 5 | PP | NaN | NaN | NaN | NaN | 1.0 | 1.0 | 1.0 | NaN | NaN | NaN | NaN | 0.0 | 771811.0 | 1611493.0 | 2011 | 3 |
| 6 | UNE | NaN | NaN | NaN | NaN | 1.0 | 1.0 | 2.0 | NaN | NaN | NaN | NaN | 707635.0 | 926236.0 | NaN | 2007 | 2 |
# agregar columna de sigla (año ganador) para graficar
partidos_ganadores['sigla_gana'] = partidos_ganadores["sigla"] + " (" + partidos_ganadores["año_gana"].astype(str) + ")"
# graficar partidos ganadores por año vs participaciones previas
fig = px.bar(
partidos_ganadores[['sigla_gana', 'part_prev']], x='sigla_gana', y='part_prev',
title='Participaciones previas de los partidos antes de ganar',
labels={'sigla_gana': 'Partido (año en que ganó)', 'part_prev': 'Participaciones previas'}
)
fig.add_annotation(x='GANA (2003)', y=0, text='GANA sin registros en 2003')
# RESPUESTA
prob = (partidos_ganadores['part_prev'] >= 2).sum() / len(partidos_ganadores['part_prev']) * 100
print(f'Probabilidades de ganar despues de participar por al menos 2 candidaturas: {prob:.2f}%')
Probabilidades de ganar despues de participar por al menos 2 candidaturas: 57.14%
# fundacion de partidos politicos por año
fundaciones = partidos[['sigla', 'fundacion']].groupby('fundacion').count()
fundaciones.reset_index(inplace=True)
fundaciones.rename(columns={'sigla': 'cantidad'}, inplace=True)
# regresion lineal de la cantidad de fundaciones por año
X = fundaciones['fundacion'].values.reshape(-1, 1)
Y = fundaciones['cantidad'].values.reshape(-1, 1)
# regressonr
linear_regressor = LinearRegression() # create object for the class
linear_regressor.fit(X, Y) # perform linear regression
# agregar una fila para el año 2015
fundaciones.loc[11] = [2015, None]
# agregar una dimensión de predicciones
fundaciones['prediccion'] = linear_regressor.predict(fundaciones['fundacion'].values.reshape(-1, 1))
# plot
px.line(fundaciones, x='fundacion', y=['cantidad', 'prediccion'], title='Cantidad de partidos politicos fundados por año en Guatemala', markers=True)
Respuesta: en base a una regresión lineal básica, para el 2015 sí deberían fundarse nuevos partidos políticos.
# datos para el plot
participaciones = partidos[['sigla', 'e85', 'e90', 'e95', 'e99', 'e03', 'e07', 'e11']]
participaciones = participaciones.copy(deep=True)
# map de los valores numericos a categoricos 1 = todas, 2 = diputados o municipales, 3 = alianza
participaciones['1985'] = participaciones['e85'].map({1: 'Todas', 2: 'Legislativas o municipales', 3: 'Alianza'})
participaciones['1990'] = participaciones['e90'].map({1: 'Todas', 2: 'Legislativas o municipales', 3: 'Alianza'})
participaciones['1995'] = participaciones['e95'].map({1: 'Todas', 2: 'Legislativas o municipales', 3: 'Alianza'})
participaciones['1999'] = participaciones['e99'].map({1: 'Todas', 2: 'Legislativas o municipales', 3: 'Alianza'})
participaciones['2003'] = participaciones['e03'].map({1: 'Todas', 2: 'Legislativas o municipales', 3: 'Alianza'})
participaciones['2007'] = participaciones['e07'].map({1: 'Todas', 2: 'Legislativas o municipales', 3: 'Alianza'})
participaciones['2011'] = participaciones['e11'].map({1: 'Todas', 2: 'Legislativas o municipales', 3: 'Alianza'})
participaciones
| sigla | e85 | e90 | e95 | e99 | e03 | e07 | e11 | 1985 | 1990 | 1995 | 1999 | 2003 | 2007 | 2011 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | AD | NaN | NaN | NaN | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | Todas | NaN | NaN | NaN |
| 1 | ADN | NaN | NaN | NaN | NaN | NaN | NaN | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | Todas |
| 2 | ANN | NaN | NaN | NaN | NaN | NaN | NaN | 1.0 | NaN | NaN | NaN | NaN | NaN | NaN | Todas |
| 3 | ANN | NaN | NaN | NaN | NaN | 2.0 | 1.0 | NaN | NaN | NaN | NaN | NaN | Legislativas o municipales | Todas | NaN |
| 4 | ANP | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 90 | PUA-MEC-FUN | 3.0 | NaN | NaN | NaN | NaN | NaN | NaN | Alianza | NaN | NaN | NaN | NaN | NaN | NaN |
| 91 | UD-LV | NaN | NaN | NaN | 3.0 | NaN | NaN | NaN | NaN | NaN | NaN | Alianza | NaN | NaN | NaN |
| 92 | UNE-GANA | NaN | NaN | NaN | NaN | NaN | NaN | 3.0 | NaN | NaN | NaN | NaN | NaN | NaN | Alianza |
| 93 | URNG-DÍA | NaN | NaN | NaN | 3.0 | NaN | NaN | NaN | NaN | NaN | NaN | Alianza | NaN | NaN | NaN |
| 94 | VIVA-EG | NaN | NaN | NaN | NaN | NaN | NaN | 3.0 | NaN | NaN | NaN | NaN | NaN | NaN | Alianza |
95 rows × 15 columns
def forma_participacion(partido):
data = participaciones[participaciones['sigla'] == partido][['sigla', '1985', '1990', '1995', '1999', '2003', '2007', '2011']]
data.set_index('sigla', inplace=True)
data = data.T
data.reset_index(inplace=True)
fig = px.scatter(
data,
x='index',
y=partido,
title='Tipos de participaciones electorales en Guatemala por año del partido ' + partido,
labels={'index': 'Año electoral', partido: 'Tipo de participacion'},
)
fig.update_traces(marker=dict(size=20))
fig.show()
forma_participacion('FRG')
forma_participacion('PAN')
forma_participacion('GANA')